<?php

declare(strict_types=1);

namespace app\admin\controller;

use app\admin\model\AdminModel;
use app\utils\ResData;

/**
 * account控制器
 */
class Account
{

    /**
     * 登录action
     */
    public function login()
    {
        // 处理post登录请求
        if (request()->isPost()) {
            // 判断是否进行了图片旋转验证
            if (session('rcvr') !== true) {
                return json(ResData::res(400, '请进行图片旋转验证'));
            }

            $verifycode = input('post.verifycode', '');
            $username = input('post.username', '');
            $password = input('post.password', '');

            if (empty($verifycode)) {
                return json(ResData::res(400, '验证码不能为空'));
            }
            if (empty($username)) {
                return json(ResData::res(400, '用户名不能为空'));
            }
            if (empty($password)) {
                return json(ResData::res(400, '密码不能为空'));
            }

            if (!captcha_check($verifycode)) {
                return json(ResData::res(400, '验证码不正确'));
            }

            $userInfo = AdminModel::where('username', $username)->find();
            if (!$userInfo) {
                return json(ResData::res(400, '用户不存在'));
            }
            if (md5($username . $password) != $userInfo->password) {
                return json(ResData::res(400, '用户名或密码不正确'));
            }
            if ($userInfo->status == 0) {
                return json(ResData::res(400, '用户已被禁用'));
            }

            // 保存用户信息到session
            unset($userInfo->password);
            session('admin', $userInfo);
            // 清空图片旋转验证session
            session('rcvr', null);
            return json(ResData::res(200, '登录成功'));
        }


        // get请求返回视图
        return view('login');
    }
}